home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / share / aclocal / intl.m4 < prev    next >
Encoding:
M4 Source File  |  2007-03-05  |  9.7 KB  |  260 lines

  1. # intl.m4 serial 3 (gettext-0.16)
  2. dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6. dnl
  7. dnl This file can can be used in projects which are not available under
  8. dnl the GNU General Public License or the GNU Library General Public
  9. dnl License but which still want to provide support for the GNU gettext
  10. dnl functionality.
  11. dnl Please note that the actual code of the GNU gettext library is covered
  12. dnl by the GNU Library General Public License, and the rest of the GNU
  13. dnl gettext package package is covered by the GNU General Public License.
  14. dnl They are *not* in the public domain.
  15.  
  16. dnl Authors:
  17. dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
  18. dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006.
  19.  
  20. AC_PREREQ(2.52)
  21.  
  22. dnl Checks for all prerequisites of the intl subdirectory,
  23. dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
  24. dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
  25. AC_DEFUN([AM_INTL_SUBDIR],
  26. [
  27.   AC_REQUIRE([AC_PROG_INSTALL])dnl
  28.   AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
  29.   AC_REQUIRE([AC_PROG_CC])dnl
  30.   AC_REQUIRE([AC_CANONICAL_HOST])dnl
  31.   AC_REQUIRE([gt_GLIBC2])dnl
  32.   AC_REQUIRE([AC_PROG_RANLIB])dnl
  33.   AC_REQUIRE([gl_VISIBILITY])dnl
  34.   AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
  35.   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
  36.   AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
  37.   AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
  38.   AC_REQUIRE([gt_TYPE_WINT_T])dnl
  39.   AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
  40.   AC_REQUIRE([gt_TYPE_INTMAX_T])
  41.   AC_REQUIRE([gt_PRINTF_POSIX])
  42.   AC_REQUIRE([gl_GLIBC21])dnl
  43.   AC_REQUIRE([gl_XSIZE])dnl
  44.   AC_REQUIRE([gt_INTL_MACOSX])dnl
  45.  
  46.   AC_CHECK_TYPE([ptrdiff_t], ,
  47.     [AC_DEFINE([ptrdiff_t], [long],
  48.        [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
  49.     ])
  50.   AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
  51.   AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen])
  52.  
  53.   dnl Use the _snprintf function only if it is declared (because on NetBSD it
  54.   dnl is defined as a weak alias of snprintf; we prefer to use the latter).
  55.   gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
  56.   gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
  57.  
  58.   dnl Use the *_unlocked functions only if they are declared.
  59.   dnl (because some of them were defined without being declared in Solaris
  60.   dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
  61.   dnl on Solaris 2.5.1 to run on Solaris 2.6).
  62.   dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
  63.   gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
  64.  
  65.   case $gt_cv_func_printf_posix in
  66.     *yes) HAVE_POSIX_PRINTF=1 ;;
  67.     *) HAVE_POSIX_PRINTF=0 ;;
  68.   esac
  69.   AC_SUBST([HAVE_POSIX_PRINTF])
  70.   if test "$ac_cv_func_asprintf" = yes; then
  71.     HAVE_ASPRINTF=1
  72.   else
  73.     HAVE_ASPRINTF=0
  74.   fi
  75.   AC_SUBST([HAVE_ASPRINTF])
  76.   if test "$ac_cv_func_snprintf" = yes; then
  77.     HAVE_SNPRINTF=1
  78.   else
  79.     HAVE_SNPRINTF=0
  80.   fi
  81.   AC_SUBST([HAVE_SNPRINTF])
  82.   if test "$ac_cv_func_wprintf" = yes; then
  83.     HAVE_WPRINTF=1
  84.   else
  85.     HAVE_WPRINTF=0
  86.   fi
  87.   AC_SUBST([HAVE_WPRINTF])
  88.  
  89.   AM_LANGINFO_CODESET
  90.   gt_LC_MESSAGES
  91.  
  92.   dnl Compilation on mingw and Cygwin needs special Makefile rules, because
  93.   dnl 1. when we install a shared library, we must arrange to export
  94.   dnl    auxiliary pointer variables for every exported variable,
  95.   dnl 2. when we install a shared library and a static library simultaneously,
  96.   dnl    the include file specifies __declspec(dllimport) and therefore we
  97.   dnl    must arrange to define the auxiliary pointer variables for the
  98.   dnl    exported variables _also_ in the static library.
  99.   if test "$enable_shared" = yes; then
  100.     case "$host_os" in
  101.       cygwin*) is_woe32dll=yes ;;
  102.       *) is_woe32dll=no ;;
  103.     esac
  104.   else
  105.     is_woe32dll=no
  106.   fi
  107.   WOE32DLL=$is_woe32dll
  108.   AC_SUBST([WOE32DLL])
  109.  
  110.   dnl Rename some macros and functions used for locking.
  111.   AH_BOTTOM([
  112. #define __libc_lock_t                   gl_lock_t
  113. #define __libc_lock_define              gl_lock_define
  114. #define __libc_lock_define_initialized  gl_lock_define_initialized
  115. #define __libc_lock_init                gl_lock_init
  116. #define __libc_lock_lock                gl_lock_lock
  117. #define __libc_lock_unlock              gl_lock_unlock
  118. #define __libc_lock_recursive_t                   gl_recursive_lock_t
  119. #define __libc_lock_define_recursive              gl_recursive_lock_define
  120. #define __libc_lock_define_initialized_recursive  gl_recursive_lock_define_initialized
  121. #define __libc_lock_init_recursive                gl_recursive_lock_init
  122. #define __libc_lock_lock_recursive                gl_recursive_lock_lock
  123. #define __libc_lock_unlock_recursive              gl_recursive_lock_unlock
  124. #define glthread_in_use  libintl_thread_in_use
  125. #define glthread_lock_init     libintl_lock_init
  126. #define glthread_lock_lock     libintl_lock_lock
  127. #define glthread_lock_unlock   libintl_lock_unlock
  128. #define glthread_lock_destroy  libintl_lock_destroy
  129. #define glthread_rwlock_init     libintl_rwlock_init
  130. #define glthread_rwlock_rdlock   libintl_rwlock_rdlock
  131. #define glthread_rwlock_wrlock   libintl_rwlock_wrlock
  132. #define glthread_rwlock_unlock   libintl_rwlock_unlock
  133. #define glthread_rwlock_destroy  libintl_rwlock_destroy
  134. #define glthread_recursive_lock_init     libintl_recursive_lock_init
  135. #define glthread_recursive_lock_lock     libintl_recursive_lock_lock
  136. #define glthread_recursive_lock_unlock   libintl_recursive_lock_unlock
  137. #define glthread_recursive_lock_destroy  libintl_recursive_lock_destroy
  138. #define glthread_once                 libintl_once
  139. #define glthread_once_call            libintl_once_call
  140. #define glthread_once_singlethreaded  libintl_once_singlethreaded
  141. ])
  142. ])
  143.  
  144.  
  145. dnl Checks for the core files of the intl subdirectory:
  146. dnl   dcigettext.c
  147. dnl   eval-plural.h
  148. dnl   explodename.c
  149. dnl   finddomain.c
  150. dnl   gettextP.h
  151. dnl   gmo.h
  152. dnl   hash-string.h hash-string.c
  153. dnl   l10nflist.c
  154. dnl   libgnuintl.h.in (except the *printf stuff)
  155. dnl   loadinfo.h
  156. dnl   loadmsgcat.c
  157. dnl   localealias.c
  158. dnl   log.c
  159. dnl   plural-exp.h plural-exp.c
  160. dnl   plural.y
  161. dnl Used by libglocale.
  162. AC_DEFUN([gt_INTL_SUBDIR_CORE],
  163. [
  164.   AC_REQUIRE([AC_C_INLINE])dnl
  165.   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
  166.   AC_REQUIRE([gl_AC_HEADER_STDINT_H])
  167.   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
  168.   AC_REQUIRE([AC_FUNC_MMAP])dnl
  169.   AC_REQUIRE([gt_INTDIV0])dnl
  170.   AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
  171.   AC_REQUIRE([gt_INTTYPES_PRI])dnl
  172.   AC_REQUIRE([gl_LOCK])dnl
  173.  
  174.   AC_TRY_LINK(
  175.     [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }],
  176.     [],
  177.     [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1,
  178.        [Define to 1 if the compiler understands __builtin_expect.])])
  179.  
  180.   AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
  181.   AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
  182.     stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \
  183.     argz_next __fsetlocking])
  184.  
  185.   dnl Use the *_unlocked functions only if they are declared.
  186.   dnl (because some of them were defined without being declared in Solaris
  187.   dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
  188.   dnl on Solaris 2.5.1 to run on Solaris 2.6).
  189.   dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
  190.   gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
  191.   gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
  192.  
  193.   AM_ICONV
  194.  
  195.   dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined,
  196.   dnl and a _NL_LOCALE_NAME macro always.
  197.   AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name,
  198.     [AC_TRY_LINK([#include <langinfo.h>
  199. #include <locale.h>],
  200.       [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));],
  201.       gt_cv_nl_locale_name=yes,
  202.       gt_cv_nl_locale_name=no)
  203.     ])
  204.   if test $gt_cv_nl_locale_name = yes; then
  205.     AC_DEFINE(HAVE_NL_LOCALE_NAME, 1,
  206.       [Define if you have <langinfo.h> and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.])
  207.   fi
  208.  
  209.   dnl intl/plural.c is generated from intl/plural.y. It requires bison,
  210.   dnl because plural.y uses bison specific features. It requires at least
  211.   dnl bison-1.26 because earlier versions generate a plural.c that doesn't
  212.   dnl compile.
  213.   dnl bison is only needed for the maintainer (who touches plural.y). But in
  214.   dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
  215.   dnl the rule in general Makefile. Now, some people carelessly touch the
  216.   dnl files or have a broken "make" program, hence the plural.c rule will
  217.   dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
  218.   dnl present or too old.
  219.   AC_CHECK_PROGS([INTLBISON], [bison])
  220.   if test -z "$INTLBISON"; then
  221.     ac_verc_fail=yes
  222.   else
  223.     dnl Found it, now check the version.
  224.     AC_MSG_CHECKING([version of bison])
  225. changequote(<<,>>)dnl
  226.     ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  227.     case $ac_prog_version in
  228.       '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  229.       1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
  230. changequote([,])dnl
  231.          ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
  232.       *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
  233.     esac
  234.     AC_MSG_RESULT([$ac_prog_version])
  235.   fi
  236.   if test $ac_verc_fail = yes; then
  237.     INTLBISON=:
  238.   fi
  239. ])
  240.  
  241.  
  242. dnl gt_CHECK_DECL(FUNC, INCLUDES)
  243. dnl Check whether a function is declared.
  244. AC_DEFUN([gt_CHECK_DECL],
  245. [
  246.   AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
  247.     [AC_TRY_COMPILE([$2], [
  248. #ifndef $1
  249.   char *p = (char *) $1;
  250. #endif
  251. ], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
  252.   if test $ac_cv_have_decl_$1 = yes; then
  253.     gt_value=1
  254.   else
  255.     gt_value=0
  256.   fi
  257.   AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
  258.     [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
  259. ])
  260.